/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.dp1.pucp.Produccion.Controlador;

import com.dp1.pucp.Modelo.Clases.Simulacion;
import com.dp1.pucp.Produccion.Vista.AsignarPedidoProduccionGUI;
import com.dp1.pucp.Produccion.Vista.DetalleSimulacionGUI;
import com.dp1.pucp.Produccion.Vista.IniciarProduccionGUI;
import com.dp1.pucp.Produccion.Vista.RegResultadosGUI;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.JFrame;

/**
 *
 * @author Rodrigo
 */
public class DetalleSimulacionControlador {
    
    private DetalleSimulacionGUI detalleSimulacionView;
    private int indice;
    private ArrayList<Simulacion> lstSimulacion;
    private MantProduccionControlador controladorPadre;
    
    public DetalleSimulacionControlador(DetalleSimulacionGUI detalleSimulacionView,ArrayList<Simulacion> lstSimulacion,int indice,MantProduccionControlador controladorPadre){
        
        this.detalleSimulacionView=detalleSimulacionView;
        this.indice=indice;
        this.lstSimulacion=lstSimulacion;
        this.controladorPadre=controladorPadre;
//        this.detalleSimulacionView.addAsignarListener(new asignarPedidosListener());
        this.detalleSimulacionView.addCerrarListener(new cerrarListener());
        this.detalleSimulacionView.addIniciarListener(new iniciarProduccionListener());
        this.detalleSimulacionView.addRegistrarListener(new registrarResultadosListener());
        //this.detalleSimulacionView.setEstado(this.lstSimulacion.get(indice).getEstado());
        
        
        
    }
    
    public void setEstadoSimulacion(int estado){
        //this.detalleSimulacionView.setEstado(estado);      
    }
    
    public DetalleSimulacionControlador getControlador(){
        return this;
    }
    
    class cerrarListener implements ActionListener {
        
        @Override
        public void actionPerformed(ActionEvent e) {
            detalleSimulacionView.dispose();
            controladorPadre.ActualizarTabla();
        }
        
    }
    
     
    class iniciarProduccionListener implements ActionListener {
        
        @Override
        public void actionPerformed(ActionEvent e) {
            if ((lstSimulacion.get(indice).getEstado()==5)){
                IniciarProduccionGUI gui = new IniciarProduccionGUI(detalleSimulacionView.getPadre(), true);
                gui.setTitle("Inicio de Produccion");
                IniciarProduccionControlador controlador = new IniciarProduccionControlador(gui, lstSimulacion.get(indice));
                //detalleSimulacionView.setEstado(lstSimulacion.get(indice).getTurno());
                gui.setVisible(true);        
            }
            else {
                detalleSimulacionView.mostrarError("Configuracion ya iniciada en produccion");
            }
        }
        
    }
    
    class registrarResultadosListener implements ActionListener {
        
        @Override
        public void actionPerformed(ActionEvent e) {
            if ((lstSimulacion.get(indice).getEstado()==6)){
            RegResultadosGUI gui = new RegResultadosGUI(detalleSimulacionView.getPadre(),true);
            gui.setTitle("Registro de resultados");
            RegResultadosControlador controlador = new RegResultadosControlador(gui,lstSimulacion.get(indice));
            gui.setVisible(true);
            }
            else {
               detalleSimulacionView.mostrarError("Configuracion aun no entro a produccion"); 
            }
        }
        
    }
    
}
